home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / progtool / modula2 / lpr / test.mod < prev    next >
Encoding:
Text File  |  1994-09-22  |  11.2 KB  |  355 lines

  1. MODULE Test;
  2. FROM InOut        IMPORT WriteLn, WriteString, WriteInt, 
  3.                          OpenOutput, CloseOutput;
  4. FROM RealInOut    IMPORT ReadLongReal, WriteLongReal, WriteLongRealFixed, 
  5.                          Done, WriteReal, WriteRealFixed, WriteLongRealHex, 
  6.                          Rec;
  7. FROM LongMathLib0 IMPORT Entier, LongReal, Ln, Exp, Sqrt, Sin, Cos, Tan, 
  8.                          Arctan, Arctan2, Pi, E;
  9. FROM MathLib0     IMPORT entier,     real, ln, exp, sqrt, sin, cos, tan, 
  10.                          arctan, arctan2, pi, e;
  11. FROM System IMPORT FLOATd;
  12. VAR R,S : LONGREAL;
  13.     r,s : REAL;
  14.     
  15. BEGIN
  16.     OpenOutput('PRN:');
  17.     
  18.     WriteString('pi            = ');
  19.     WriteLongRealFixed(Pi,21,15);
  20.     WriteRealFixed(pi,18,7);
  21.     WriteLn;WriteLn;
  22.     
  23.     WriteString('sqrt(1/pi)    = ');
  24.     WriteLongReal(Sqrt(Rec(Pi)),26);
  25.     WriteReal(sqrt(1.0/pi),17);
  26.     WriteLn;
  27.     WriteString('sqrt(2/pi)    = ');
  28.     WriteLongReal(Sqrt(FLOATd(2)*Rec(Pi)),26);
  29.     WriteReal(sqrt(2.0/pi),17);
  30.     WriteLn;
  31.     WriteString('sqrt(pi)      = ');
  32.     WriteLongReal(Sqrt(Pi),26);
  33.     WriteReal(sqrt(pi),17);
  34.     WriteLn;
  35.     WriteString('sqrt(2)       = ');
  36.     WriteLongReal(Sqrt(FLOATd(2)),26);
  37.     WriteReal(sqrt(2.0),17);
  38.     WriteLn;
  39.     WriteString('sqrt(10)      = ');
  40.     WriteLongReal(Sqrt(FLOATd(10)),26);
  41.     WriteReal(sqrt(10.0),17);
  42.     WriteLn;WriteLn;
  43.      
  44.     WriteString('e             = ');
  45.     WriteLongRealFixed(E,21,15);
  46.     WriteRealFixed(e,18,7);
  47.     WriteLn; WriteLn;
  48.     
  49.     WriteString('exp(-1)       = ');
  50.     WriteLongReal(Exp(-FLOATd(1)),26);
  51.     WriteReal(exp(-1.0),17);
  52.     WriteLn;
  53.     WriteString('exp(-1/4)     = ');
  54.     WriteLongReal(Exp(-Rec(FLOATd(4))),26);
  55.     WriteReal(exp(-1.0/4.0),17);
  56.     WriteLn;
  57.     WriteString('exp(1/4)      = ');
  58.     WriteLongReal(Exp(Rec(FLOATd(4))),26);
  59.     WriteReal(exp(1.0/4.0),17);
  60.     WriteLn;
  61.     WriteString('exp(1)        = ');
  62.     WriteLongReal(Exp(FLOATd(1)),26);
  63.     WriteReal(exp(1.0),17);
  64.     WriteLn;WriteLn;
  65.     
  66.     WriteString('ln(sqrt(2))   = ');
  67.     WriteLongReal(Ln(Sqrt(FLOATd(2))),26);
  68.     WriteReal(ln(sqrt(2.0)),17);
  69.     WriteLn;
  70.     WriteString('ln(2)         = ');
  71.     WriteLongReal(Ln(FLOATd(2)),26);
  72.     WriteReal(ln(2.0),17);
  73.     WriteLn;
  74.     WriteString('ln(4)         = ');
  75.     WriteLongReal(Ln(FLOATd(4)),26);
  76.     WriteReal(ln(4.0),17);
  77.     WriteLn;
  78.     WriteString('ln(10)        = ');
  79.     WriteLongReal(Ln(FLOATd(10)),26);
  80.     WriteReal(ln(10.0),17);
  81.     WriteLn;WriteLn;
  82.            
  83.     WriteString('sin(pi/24)    = ');
  84.     WriteLongReal(Sin(Pi*Rec(FLOATd(24))),26);
  85.     WriteReal(sin(pi/24.0),17);
  86.     WriteLn;
  87.     WriteString('sin(pi/16)    = ');
  88.     WriteLongReal(Sin(Pi*Rec(FLOATd(16))),26);
  89.     WriteReal(sin(pi/16.0),17);
  90.     WriteLn;
  91.     WriteString('sin(1/4)      = ');
  92.     WriteLongReal(Sin(FLOATd(1)*Rec(FLOATd(4))),26);
  93.     WriteReal(sin(0.25),17);
  94.     WriteLn;
  95.     WriteString('sin(pi/12)    = ');
  96.     WriteLongReal(Sin(Pi*Rec(FLOATd(12))),26);
  97.     WriteReal(sin(pi/12.0),17);
  98.     WriteLn;
  99.     WriteString('sin(1/2)      = ');
  100.     WriteLongReal(Sin(FLOATd(1)*Rec(FLOATd(2))),26);
  101.     WriteReal(sin(0.5),17);
  102.     WriteLn;
  103.     WriteString('sin(pi/6)     = ');
  104.     WriteLongReal(Sin(Pi*Rec(FLOATd(6))),26);
  105.     WriteReal(sin(pi/6.0),17);
  106.     WriteLn;
  107.     WriteString('sin(pi/4)     = ');
  108.     WriteLongReal(Sin(Pi*Rec(FLOATd(4))),26);
  109.     WriteReal(sin(pi/4.0),17);
  110.     WriteLn;
  111.     WriteString('sin(1)        = ');
  112.     WriteLongReal(Sin(FLOATd(1)),26);
  113.     WriteReal(sin(1.0),17);
  114.     WriteLn;
  115.     WriteString('sin(pi/3)     = ');
  116.     WriteLongReal(Sin(Pi*Rec(FLOATd(3))),26);
  117.     WriteReal(sin(pi/3.0),17);
  118.     WriteLn;
  119.     WriteString('sin(3*pi/8)   = ');
  120.     WriteLongReal(Sin(FLOATd(3)*Pi*Rec(FLOATd(8))),26);
  121.     WriteReal(sin(3.0*pi/8.0),17);
  122.     WriteLn;
  123.     WriteString('sin(5*pi/12)  = ');
  124.     WriteLongReal(Sin(FLOATd(5)*Pi*Rec(FLOATd(12))),26);
  125.     WriteReal(sin(5.0*pi/12.0),17);
  126.     WriteLn;WriteLn;
  127.  
  128.     WriteString('tan(pi/32)    = ');
  129.     WriteLongReal(Tan(Pi*Rec(FLOATd(32))),26);
  130.     WriteReal(tan(pi/32.0),17);
  131.     WriteLn;
  132.     WriteString('tan(pi/16)    = ');
  133.     WriteLongReal(Tan(Pi*Rec(FLOATd(16))),26);
  134.     WriteReal(tan(pi/16.0),17);
  135.     WriteLn;
  136.     WriteString('tan(1/4)      = ');
  137.     WriteLongReal(Tan(Rec(FLOATd(4))),26);
  138.     WriteReal(tan(0.25),17);
  139.     WriteLn;
  140.     WriteString('tan(pi/12)    = ');
  141.     WriteLongReal(Tan(Pi*Rec(FLOATd(12))),26);
  142.     WriteReal(tan(pi/12.0),17);
  143.     WriteLn;
  144.     WriteString('tan(3*pi/32)  = ');
  145.     WriteLongReal(Tan(FLOATd(3)*Pi*Rec(FLOATd(32))),26);
  146.     WriteReal(tan(3.0*pi/32.0),17);
  147.     WriteLn;
  148.     WriteString('tan(pi/8)     = ');
  149.     WriteLongReal(Tan(Pi*Rec(FLOATd(8))),26);
  150.     WriteReal(tan(pi/8.0),17);
  151.     WriteLn;
  152.     WriteString('tan(5*pi/32)  = ');
  153.     WriteLongReal(Tan(FLOATd(5)*Pi*Rec(FLOATd(32))),26);
  154.     WriteReal(tan(5.0*pi/32.0),17);
  155.     WriteLn;
  156.     WriteString('tan(1/2)      = ');
  157.     WriteLongReal(Tan(Rec(FLOATd(2))),26);
  158.     WriteReal(tan(0.5),17);
  159.     WriteLn;
  160.     WriteString('tan(pi/6)     = ');
  161.     WriteLongReal(Tan(Pi*Rec(FLOATd(6))),26);
  162.     WriteReal(tan(pi/6.0),17);
  163.     WriteLn;
  164.     WriteString('tan(3*pi/16)  = ');
  165.     WriteLongReal(Tan(FLOATd(3)*Pi*Rec(FLOATd(16))),26);
  166.     WriteReal(tan(3.0*pi/16.0),17);
  167.     WriteLn;
  168.     WriteString('tan(7*pi/32)  = ');
  169.     WriteLongReal(Tan(FLOATd(7)*Pi*Rec(FLOATd(32))),26);
  170.     WriteReal(tan(7.0*pi/32.0),17);
  171.     WriteLn;
  172.     WriteString('tan(pi/4)     = ');
  173.     WriteLongReal(Tan(Pi*Rec(FLOATd(4))),26);
  174.     WriteReal(tan(pi/4.0),17);
  175.     WriteLn;
  176.     WriteString('tan(9*pi/32)  = ');
  177.     WriteLongReal(Tan(FLOATd(9)*Pi*Rec(FLOATd(32))),26);
  178.     WriteReal(tan(9.0*pi/32.0),17);
  179.     WriteLn;
  180.     WriteString('tan(5*pi/16)  = ');
  181.     WriteLongReal(Tan(FLOATd(5)*Pi*Rec(FLOATd(16))),26);
  182.     WriteReal(tan(5.0*pi/16.0),17);
  183.     WriteLn;
  184.     WriteString('tan(1)        = ');
  185.     WriteLongReal(Tan(FLOATd(1)),26);
  186.     WriteReal(tan(1.0),17);
  187.     WriteLn;
  188.     WriteString('tan(pi/3)     = ');
  189.     WriteLongReal(Tan(Pi*Rec(FLOATd(3))),26);
  190.     WriteReal(tan(pi/3.0),17);
  191.     WriteLn;
  192.     WriteString('tan(11*pi/32) = ');
  193.     WriteLongReal(Tan(FLOATd(11)*Pi*Rec(FLOATd(32))),26);
  194.     WriteReal(tan(11.0*pi/32.0),17);
  195.     WriteLn;
  196.     WriteString('tan(3*pi/8)   = ');
  197.     WriteLongReal(Tan(FLOATd(3)*Pi*Rec(FLOATd(8))),26);
  198.     WriteReal(tan(3.0*pi/8.0),17);
  199.     WriteLn;
  200.     WriteString('tan(13*pi/32) = ');
  201.     WriteLongReal(Tan(FLOATd(13)*Pi*Rec(FLOATd(32))),26);
  202.     WriteReal(tan(13.0*pi/32.0),17);
  203.     WriteLn;
  204.     WriteString('tan(5*pi/12)  = ');
  205.     WriteLongReal(Tan(FLOATd(5)*Pi*Rec(FLOATd(12))),26);
  206.     WriteReal(tan(5.0*pi/12.0),17);
  207.     WriteLn;
  208.     WriteString('tan(7*pi/16)  = ');
  209.     WriteLongReal(Tan(FLOATd(7)*Pi*Rec(FLOATd(16))),26);
  210.     WriteReal(tan(7.0*pi/16.0),17);
  211.     WriteLn;
  212.     WriteString('tan(15*pi/32) = ');
  213.     WriteLongReal(Tan(FLOATd(15)*Pi*Rec(FLOATd(32))),26);
  214.     WriteReal(tan(15.0*pi/32.0),17);
  215.     WriteLn;WriteLn;
  216.  
  217.     WriteString('(arctan(tan(r))-r)/r:');
  218.     WriteLn;
  219.     WriteString('r = (pi/32)    :');
  220.     R:=Pi*Rec(FLOATd(32));
  221.     r:=pi/32.0;
  222.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  223.     WriteReal((arctan(tan(r))-r)/r,17);
  224.     WriteLn;
  225.     WriteString('r = (pi/16)    :');
  226.     R:=Pi*Rec(FLOATd(16));
  227.     r:=pi/16.0;
  228.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  229.     WriteReal((arctan(tan(r))-r)/r,17);
  230.     WriteLn;
  231.     WriteString('r = (1/4)      :');
  232.     R:=Rec(FLOATd(4));
  233.     r:=0.25;
  234.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  235.     WriteReal((arctan(tan(r))-r)/r,17);
  236.     WriteLn;
  237.     WriteString('r = (pi/12)    :');
  238.     R:=Pi*Rec(FLOATd(12));
  239.     r:=pi/12.0;
  240.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  241.     WriteReal((arctan(tan(r))-r)/r,17);
  242.     WriteLn;
  243.     WriteString('r = (3*pi/32)  :');
  244.     R:=FLOATd(3)*Pi*Rec(FLOATd(32));
  245.     r:=3.0*pi/32.0;
  246.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  247.     WriteReal((arctan(tan(r))-r)/r,17);
  248.     WriteLn;
  249.     WriteString('r = (pi/8)     :');
  250.     R:=Pi*Rec(FLOATd(8));
  251.     r:=pi/8.0;
  252.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  253.     WriteReal((arctan(tan(r))-r)/r,17);
  254.     WriteLn;
  255.     WriteString('r = (5*pi/32)  :');
  256.     R:=FLOATd(5)*Pi*Rec(FLOATd(32));
  257.     r:=5.0*pi/32.0;
  258.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  259.     WriteReal((arctan(tan(r))-r)/r,17);
  260.     WriteLn;
  261.     WriteString('r = (1/2)      :');
  262.     R:=Rec(FLOATd(2));
  263.     r:=0.5;
  264.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  265.     WriteReal((arctan(tan(r))-r)/r,17);
  266.     WriteLn;
  267.     WriteString('r = (pi/6)     :');
  268.     R:=Pi*Rec(FLOATd(6));
  269.     r:=pi/6.0;
  270.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  271.     WriteReal((arctan(tan(r))-r)/r,17);
  272.     WriteLn;
  273.     WriteString('r = (3*pi/16)  :');
  274.     R:=FLOATd(3)*Pi*Rec(FLOATd(16));
  275.     r:=3.0*pi/16.0;
  276.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  277.     WriteReal((arctan(tan(r))-r)/r,17);
  278.     WriteLn;
  279.     WriteString('r = (7*pi/32)  :');
  280.     R:=FLOATd(7)*Pi*Rec(FLOATd(32));
  281.     r:=7.0*pi/32.0;
  282.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  283.     WriteReal((arctan(tan(r))-r)/r,17);
  284.     WriteLn;
  285.     WriteString('r = (pi/4)     :');
  286.     R:=Pi*Rec(FLOATd(4));
  287.     r:=pi/4.0;
  288.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  289.     WriteReal((arctan(tan(r))-r)/r,17);
  290.     WriteLn;
  291.     WriteString('r = (9*pi/32)  :');
  292.     R:=FLOATd(9)*Pi*Rec(FLOATd(32));
  293.     r:=9.0*pi/32.0;
  294.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  295.     WriteReal((arctan(tan(r))-r)/r,17);
  296.     WriteLn;
  297.     WriteString('r = (5*pi/16)  :');
  298.     R:=FLOATd(5)*Pi*Rec(FLOATd(16));
  299.     r:=5.0*pi/16.0;
  300.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  301.     WriteReal((arctan(tan(r))-r)/r,17);
  302.     WriteLn;
  303.     WriteString('r = (1)        :');
  304.     R:=FLOATd(1);
  305.     r:=1.0;
  306.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  307.     WriteReal((arctan(tan(r))-r)/r,17);
  308.     WriteLn;
  309.     WriteString('r = (pi/3)     :');
  310.     R:=Pi*Rec(FLOATd(3));
  311.     r:=pi/3.0;
  312.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  313.     WriteReal((arctan(tan(r))-r)/r,17);
  314.     WriteLn;
  315.     WriteString('r = (11*pi/32) :');
  316.     R:=FLOATd(11)*Pi*Rec(FLOATd(32));
  317.     r:=11.0*pi/32.0;
  318.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  319.     WriteReal((arctan(tan(r))-r)/r,17);
  320.     WriteLn;
  321.     WriteString('r = (3*pi/8)   :');
  322.     R:=FLOATd(3)*Pi*Rec(FLOATd(8));
  323.     r:=3.0*pi/8.0;
  324.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  325.     WriteReal((arctan(tan(r))-r)/r,17);
  326.     WriteLn;
  327.     WriteString('r = (13*pi/32) :');
  328.     R:=FLOATd(13)*Pi*Rec(FLOATd(32));
  329.     r:=13.0*pi/32.0;
  330.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  331.     WriteReal((arctan(tan(r))-r)/r,17);
  332.     WriteLn;
  333.     WriteString('r = (5*pi/12)  :');
  334.     R:=FLOATd(5)*Pi*Rec(FLOATd(12));
  335.     r:=5.0*pi/12.0;
  336.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  337.     WriteReal((arctan(tan(r))-r)/r,17);
  338.     WriteLn;
  339.     WriteString('r = (7*pi/16)  :');
  340.     R:=FLOATd(7)*Pi*Rec(FLOATd(16));
  341.     r:=7.0*pi/16.0;
  342.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  343.     WriteReal((arctan(tan(r))-r)/r,17);
  344.     WriteLn;
  345.     WriteString('r = (15*pi/32) :');
  346.     R:=FLOATd(15)*Pi*Rec(FLOATd(32));
  347.     r:=15.0*pi/32.0;
  348.     WriteLongReal((Arctan(Tan(R))-R)*Rec(r),26);
  349.     WriteReal((arctan(tan(r))-r)/r,17);
  350.     WriteLn;WriteLn;
  351.      
  352.     CloseOutput
  353.     
  354. END Test.
  355.